package base

type VapHostConf struct {
	Log       Log    `yaml:"log" json:"log"`
	Tcp       Tcp    `yaml:"tcp" json:"tcp"`
	DB        DB     `yaml:"db" json:"db"`
	AppFolder string `yaml:"appFolder"` // 应用文件夹
	AppHost   struct {
		UID     string `yaml:"uid" json:"uid"`     // 服务器的id，不能重复
		RdpIp   string `yaml:"rdpIp" json:"rdpIp"` // rdp ip和端口，因为存在nat网络转换的情况，因此程序获取的不一定是正确的
		RdpPort int    `yaml:"rdpPort" json:"rdpPort"`
	} `yaml:"appHost" json:"appHost"` // vapHost自定义参数，优先级高于程序自动采集的信息
}

// VapConf vap配置
type VapConf struct {
	Log        Log        `yaml:"log" json:"log"`
	TcpServ    TcpServ    `yaml:"tcpServ" json:"tcpServ"`
	Http       Http       `yaml:"http" json:"http"`
	DB         DB         `yaml:"db" json:"db"`
	GuacdAddr  string     `yaml:"guacdAddr" json:"guacdAddr"`
	RdpAccount RdpAccount `yaml:"rdpAccount" json:"rdpAccount"`
	AppFolder  string     `yaml:"appFolder"` // 应用文件夹
}

type RdpAccount struct {
	User string `json:"user" yaml:"user"`
	Pwd  string `json:"pwd" yaml:"pwd"`
}

// IdpConf idp配置
type IdpConf struct {
	Log         Log    `yaml:"log" json:"log"`
	Http        Http   `yaml:"http" json:"http"`
	DB          DB     `yaml:"db" json:"db"`
	Tcp         Tcp    `yaml:"tcp" json:"tcp"`
	PicPath     string `yaml:"pic_path" json:"picPath"`            // 上传图片的存放路径，这个路径会被作为资源路径直接映射出去
	JsonMapPath string `yaml:"json_map_path" json:"json_map_path"` //json地图的存放路径
}

// SysConf sys配置
type SysConf struct {
	Log       Log    `yaml:"log" json:"log"`
	Http      Http   `yaml:"http" json:"http"`
	DB        DB     `yaml:"db" json:"db"`
	AppFolder string `yaml:"appFolder"` // 应用文件夹
	RemoteApi struct {
		Vap []string `yaml:"vap" json:"vap"`
	} `yaml:"remoteApi" json:"remoteApi"`
}

// GatewayConf 网关配置文件
type GatewayConf struct {
	AppFolder string `yaml:"appFolder"` // 应用文件夹
	Log       Log    `yaml:"log" json:"log"`
	Http      Http   `yaml:"http" json:"http"`
	Proxy     Proxy  `yaml:"proxy" json:"proxy"`
}

// Proxy 网关代理
type Proxy struct {
	Sys string `yaml:"sys"`
	Idp string `yaml:"idp"`
	Lms string `yaml:"lms"`
	Vap string `yaml:"vap"`
}

// Log 日志文件配置
type Log struct {
	Name string `yaml:"name"`
	Lv   string `yaml:"lv"`
}

// DB 数据库配置
type DB struct {
	Supper     string `yaml:"supper"` // 支持的数据库类型
	Source     string `yaml:"source"` // 各种不同的数据连接请自行格式化为字符串
	ShowSqlLog bool   `yaml:"showSqlLog"`
}

// Http http服务配置
type Http struct {
	Addr string `yaml:"addr"`
	Cert string `yaml:"cert"`
	Key  string `yaml:"key"`
}

// Tcp tcp服务配置
type Tcp struct {
	Servers  []string `yaml:"servers"`
	Interval int      `yaml:"interval"`
}
type TcpServ struct {
	Address  string `yaml:"address"`
	Interval uint8  `yaml:"interval"`
}

// Rag rag配置
type Rag struct {
	ChromaDBUrl string `yaml:"chromaDBUrl" `
	OllamaUrl   string `yaml:"ollamaUrl" `
}
